﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Data_Access_Layer;

namespace Business_Layer
{
    public class DeskController
    {
        //Lỗi
        public string _err = "";


        //Hiển thị danh sách nhà cung cấp
        public List<Desk> GetAll()
        {
            //Load lên những nhà cung cấp chưa bị xóa == thuộc tính deleted=false
            return Desk.Objects.Where(x => x.Deleted == false).ToList();
        }


        //Thêm hoặc cập nhật
        public bool InsertOrUpdate(Desk d)
        {
            _err = "";
            try
            {
                //Nếu Id > 0 nghĩa là đang cập nhật
                if (d.Id > 0)
                {
                    Desk.Objects.Update(d);
                    return true;
                }
                    
                else
                {
                    //Ngược lại == 0 là thêm mới
                    Desk.Objects.Insert(d);
                    return true;
                }

            }
            catch (Exception ex)
            {
                _err = ex.Message;
                return false;
            }
        }
        //Xóa nhà cung cấp
        public bool Delete(Desk d)
        {
            _err = "";
            try
            {
                Desk.Objects.Update(d);
                return true;
            }
            catch (Exception ex)
            {
                _err = ex.Message;
                return false;
            }
        }

        //Tìm theo mã
        public List<Desk> FindById(int id)
        {
            return Desk.Objects.Where(x => x.Id.ToString().IndexOf(id.ToString()) !=-1 & x.Deleted == false).ToList();
        }

        //Tìm theo tên
        public List<Desk> FindByName(string name)
        {
            return Desk.Objects.Where(x => x.DeskName.IndexOf(name) != -1 & x.Deleted == false).ToList();
        }
        
        //Tìm theo Loại bàn
        public List<Desk> FindByType(string type)
        {
            return Desk.Objects.Where(x => x.DeskType == type & x.Deleted == false).ToList();
        }

        //Tìm theo Trạng thái bàn
        public List<Desk> FindByStatus(bool stt)
        {
            return Desk.Objects.Where(x => x.Status == stt & x.Deleted == false).ToList();
        }
    }
}
